# 1、创建环境
from pyspark.context import SparkContext

sc = SparkContext(master='local', appName='demo2_map')

# 2、读取数据
students_rdd = sc.textFile("../../data/students.txt")


# 自定义函数
def map_fun(student):
    name = student.split(",")[1]
    clazz = student.split(",")[-1]
    print("map_fun被执行")
    return name, clazz


# 转换算子：RDD之间的转换
# 懒执行，不会立马执行，需要操作算子触发执行

# 操作算子: 触发任务的执行,每一个操作算子都会触发一个job


# map：循环将rdd的数据传递给后面的函数，每一条数据调用一次函数
names_rdd = students_rdd.map(map_fun)

names_rdd.foreach(print)

# 使用lambda表达式
ages_rdd = students_rdd.map(lambda student: (student.split(",")[1], student.split(",")[2]))

ages_rdd.foreach(print)


while True:
    pass